#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const int dx[8] = {1, 1, 2, 2, -1, -1, -2, -2}, dy[8] = {2, -2, 1, -1, 2, -2, 1, -1};

ll ksm(int a, int b, int p) {
	ll sum = 1;
	a %= p;
	while (b) {
		if (b & 1) sum = (sum * a) % p;
		b >>= 1;
		a = (a * a) % p;
	}
	return sum % p;
}

void solve() {

	int n, m, k, x1, y1, x2, y2;
	cin >> n >> m >> k;
	assert(k >= 1);
	cin >> x1 >> y1 >> x2 >> y2;

	struct Node {
		int x, y, dist;
	};

	queue<Node> q;
	vector d(n + 1, vector(m + 1, vector<int>(2, -1)));
	vector pre(n + 1, vector<vector<pair<int, int>>>(m + 1, vector<pair<int, int>>(2, {-1, -1})));
	q.push({x1, y1, 0});
	while (!q.empty()) {
		auto [x, y, dist] = q.front();
		q.pop();
		if (d[x][y][dist & 1] != -1) continue;
		d[x][y][dist & 1] = dist;

		for (int i = 0; i < 8; i++) {
			int nx = x + dx[i];
			int ny = y + dy[i];
			if (nx < 1 || nx > n || ny < 1 || ny > m) continue;
			if (d[nx][ny][(dist & 1) ^ 1] != -1) continue;
			q.push({nx, ny, dist + 1});
			pre[nx][ny][(dist & 1) ^ 1] = {x, y};
		}
	}

	vector<pair<int, int>> ans;
	int ok = -1;
	for (int op = 0; op < 2; op++) {
		int D = d[x2][y2][op];
		if (D == -1 || D > k) continue;
		if ((k - D) % 2) continue;

		int x = x2, y = y2, f = op;
		while (!(x == x1 && y == y1)) {
			ans.emplace_back(x, y);
			auto [pre_x, pre_y] = pre[x][y][f];
			f ^= 1;
			x = pre_x;
			y = pre_y;
		}
		ok = op;
		break;
	}

	if (ok != -1) {
		int x = -1, y = -1;
		for (int i = 0; i < 8; i++) {
			int nx = x1 + dx[i], ny = y1 + dy[i];
			if (nx < 1 || nx > n || ny < 1 || ny > m) continue;
			x = nx;
			y = ny;
			break;
		}
		if (x == -1) {
			cout << "No" << endl;
			return ;
		}
		cout << "Yes" << endl;
		int op = 0;
		while (ans.size() < k) {
			if (op) {
				ans.emplace_back(x, y);
			} else {
				ans.emplace_back(x1, y1);
			}
			op ^= 1;
		}
		reverse(ans.begin(), ans.end());
		for (auto & [xx, yy] : ans) cout << xx << " " << yy << endl;
	} else {
		cout << "No" << endl;
	}

}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	solve();

	return 0;
}
